﻿using System;
using System.ComponentModel;
namespace devtm.Configuration
{
    public interface IConfigProperty : INotifyPropertyChanged
    {
        bool CanValidate { get; }
        bool CanWrite { get; }
        event EventHandler<EditorEventArgs> ConfigurationEventHandler;
        string Description { get; set; }
        IElementSection Instance { get; set; }
        string InvalidCharacters { get; set; }
        bool IsInError { get; }
        int Maximum { get; set; }
        System.Reflection.MemberInfo MemberInfo { get; set; }
        int Minimum { get; set; }
        string Name { get; set; }
        event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        string PropertyName { get; set; }
        void RunEditor();
        void Selector();
        object Tag { get; set; }
        Type Type { get; set; }
        void Validator(object o);
        object Value { get; set; }
        System.Windows.Visibility ViewDescription { get; }
        System.Windows.Visibility VisibilityCanValidate { get; }
        System.Windows.Visibility VisibleError { get; }
        void MyPropertyChanged(String nameproperty);

        void RefreshForm();
    }
}
